package cn.duhengkui.national.valuelist.core.data.util;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 处理SQL语句工具类
 *
 * @author <a href="mailto:26170385@qq.como">liyu</a>
 * @history
 * <TABLE id="HistoryTable" border="1">
 * 	<TR><TD>时间</TD><TD>描述</TD><TD>作者</TD></TR>
 *	<TR><TD>2012-7-6</TD><TD>创建初始版本</TD><TD>liyu</TD></TR>
 * </TABLE>
 */
public class SqlParametersUtil {

	/**
	 * 获得SQL语句中所有参数
	 * @param sql SQL语句
	 * @param patternStr 参数表达式
	 * @return
	 */
	public static final String[] parseStatement(String sql, String patternStr) {
		Pattern templatePattern = Pattern.compile(patternStr);
		Matcher matcher =templatePattern.matcher(sql);
		List<String> params = new ArrayList<>(0);
		while(matcher.find()) {
			String templateKeyString = matcher.group();
			String templateKeyName = templateKeyString.substring(1,templateKeyString.length()-1);
			params.add(templateKeyName);
		}
		return params.toArray(new String[] {});
	}
	
	/**
	 * 获得SQL语句，并将所有参数替换成“？”
	 * @param sql SQL语句
	 * @param patternStr 参数表达式
	 * @return
	 */
	public static final String parseSql(String sql, String patternStr) {
		return sql.replaceAll(patternStr, "?");
	}
	
}
/**
 * Copyright ©2009-2014 李煜 All Rights Reserved.
 */